package org.lc.stk.service.course;

import java.util.List;

import org.lc.stk.model.course.Course;

/**
 * 课程服务接口
 */
public interface CourseService {
    
    /**
     * 保存课程
     *
     * @param course 课程信息
     * @return 保存后的课程
     */
    Course save(Course course);

    /**
     * 更新课程
     *
     * @param course 课程信息
     * @return 更新后的课程
     */
    Course update(Course course);

    /**
     * 根据ID删除课程
     *
     * @param id 课程ID
     */
    void delete(Integer id);

    /**
     * 根据ID查找课程
     *
     * @param id 课程ID
     * @return 课程信息
     */
    Course findById(Integer id);

    /**
     * 查询所有课程
     *
     * @return 课程列表
     */
    List<Course> findAll();

    /**
     * 检查课程名称是否存在
     *
     * @param name 课程名称
     * @return 如果存在返回true，否则返回false
     */
    boolean existsByName(String name);

    /**
     * 检查指定ID的课程是否存在
     *
     * @param id 课程ID
     * @return 如果存在返回true，否则返回false
     */
    boolean existsById(Integer id);
}